#include "LED_SystemIndicator.h"
#include "Delay.h"

void SYS_LED_Init(void){
    // 1.使用不同的引脚，开启不同的GPIO时钟
    if (SYS_LED_PORT == GPIOA) {
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
    } else if (SYS_LED_PORT == GPIOB) {
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
    } else if (SYS_LED_PORT == GPIOC) {
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
    }

    // 2.配置推挽输出
    GPIO_InitTypeDef GPIO_InitStruct;   							// GPIO_InitStruct是一个习惯命名
    GPIO_InitStruct.GPIO_Pin = SYS_BLLED_PIN | SYS_RLED_PIN; 		// 初始化引脚
    GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP; 					// 引脚的工作模式是推挽输出模式
    GPIO_InitStruct.GPIO_Speed = GPIO_Speed_2MHz;   				// 工作速度为低速2MHz 
    GPIO_Init(SYS_LED_PORT, &GPIO_InitStruct);						// 调用GPIO_Init, 完成引脚初始化
	
	// 3.初始状态熄灭LED
    GPIO_WriteBit(SYS_LED_PORT, SYS_BLLED_PIN, (BitAction)LED_OFF);
	GPIO_WriteBit(SYS_LED_PORT, SYS_RLED_PIN, (BitAction)LED_OFF);
}

void SYS_BLLED_shortBlink(void){	
	for(int i = 0; i < 5; i++){
		GPIO_WriteBit(SYS_LED_PORT, SYS_BLLED_PIN, (BitAction)LED_ON);	
		Delay_ms(500);	
		GPIO_WriteBit(SYS_LED_PORT, SYS_BLLED_PIN, (BitAction)LED_OFF);	
		Delay_ms(500);	
	}
}

void SYS_RLED_shortBlink(void){	
	for(int i = 0; i < 5; i++){
		GPIO_WriteBit(SYS_LED_PORT, SYS_RLED_PIN, (BitAction)LED_ON);	
		Delay_ms(500);	
		GPIO_WriteBit(SYS_LED_PORT, SYS_RLED_PIN, (BitAction)LED_OFF);	
		Delay_ms(500);	
	}
}
